import sympy as sp
from mcp.server.fastmcp import FastMCP

# Initialize FastMCP server
mcp = FastMCP("hello-world")


@mcp.tool()
async def run_expression(expression: str) -> float:
    """运行数学表达式并返回结果
    参数:
        expression (str): 数学表达式，例如：
            - "2 + 3 * 4"
            - "sqrt(16)"
            - "sin(pi/2)"
    返回:
        float: 表达式的计算结果，保留两位小数
    处理流程:
        1. 使用sympy库解析表达式
        2. 计算表达式的值
    """
    # 使用sympy解析表达式
    expr = sp.sympify(expression)
    # 计算表达式的值
    result = expr.evalf()
    return result


@mcp.tool()
async def say_hello(name: str) -> str:
    """打招呼\n
    参数:\n
        name (str): 人名\n
    返回:
        str: 打招呼信息
    """
    return f"你好 {name}!"


if __name__ == "__main__":
    # Initialize and run the server
    mcp.run(transport='stdio')
